<?php
/**
 * Sakam - framework oriented trough models
 * 
 * @category   	Sakam
 * @package    	Sakam_Data
 * @subpackage  Sakam_Data_Database
 * @author		Carlos Gonzalez <zahualli@gmail.com>
 * @copyright  	Copyright (c) 2009-2010 Carlos Gonzalez
 */
interface Sakam_Data_Field_Interface
{
	/**
	 * Name of field
	 * @var string
	 * @access protected
	 */
	protected $_name = null;
	
	/**
	 * Type of field
	 * @var string
	 * @access protected
	 */
	protected $_type = null;
	
	/**
	 * Lenght of field
	 * @var int
	 * @access protected
	 */
	protected $_lenght = null;
	
	/**
	 * Is Key?
	 * @var string
	 * @access protected
	 */
	protected $_key  = null;
	
	/**
	 * Set name of field
	 * @param	string	$type
	 * @access	public
	 * @return 	void
	 */
	public function setName( $type );
	
	/**
	 * Get name of field
	 * @access	public
	 * @return 	string
	 */
	public function getName();
	
	/**
	 * Set type of field
	 * 
	 * @param	string	$type
	 * @return 	void
	 */
	public function setType( $type );
	
	/**
	 * Get type of field
	 * @return 	string
	 */
	public function getType();
	
	/**
	 * Set lenght of field
	 * @param	int	$type
	 * @access	public
	 * @return 	void
	 */
	public function setLenght( $lenght );
	
	/**
	 * Get type of field
	 * @access	public
	 * @return 	int
	 */
	public function getLenght();
	
	/**
	 * Get or Set key
	 * @access	public
	 * @return 	bool
	 */
	public function isKey($key);
	
	/**
	 * Get or Set fiel
	 * @access	public 
	 * @return 	string
	 */
	public function getSQL();
}